class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int ans = 0;
        for (int i = 0; i < 32; ++i) {
            int total = 0;
            for (int j = 0; j < nums.size(); ++j) {
                total += ((nums[j] >> i) & 1); // num>>i是 把要确定的第i位放在 第0位 然后
                                    // &1 是看这位是0还是1 是0 则 0 是1 则1
            }
            if (total % 3) // 如果total是 三 则这一位不用动 因为原本就是0
            {
                ans |= (1 << i); // 如果是1 的话 那就让ans这位 等于 1  1《《i
                                 // 就是把1送到第i位 | 就是让第i位变成1
            }
        }
        return ans;
    }
};
